import {WebSocketServer} from 'ws'
import Mock from 'mockjs'


let id = 1

/* 
生成随机数据
*/
function getData() {

  Mock.Random.name()
  Mock.Random.province()
  Mock.Random.date()
  Mock.Random.integer(1000, 5000)

  let {list} = Mock.mock({
      // 属性 list 的值是一个数组，其中含有 1 到 10 个元素
      'list|5-10': [{
        //  name: '@name',
        num: '@integer(1000, 5000)',
        address: '@province',
        date: '@date'
      }]
  })
  // 添加唯一id
  list = list.map(item => ({
    ...item,
    id: id++
  }))
  console.log(list)
  return list
}

// getData()


const wss = new WebSocketServer({port: 8899})

wss.on("connection", function connection(ws) {
  console.log('连接成功!')
  sendMessage(ws);
});

/* 
不断向浏览器发送消息数据的函数
*/
function sendMessage(socket) {
  const time = Math.floor(Math.random()*8000 + 2000)  // 2-6秒
  socket.timer = setInterval(() => {
    // 得到新的随机数据
    const data = getData()
    // 发送给浏览器
    socket.send(JSON.stringify(data))
  }, time);
}

